from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# 这里设置发送者邮箱
sender_email = "X@qq.com"


def build_email_content(data_dict, subject, recipient_emails):
    """
    根据给定的数据字典构建邮件内容（包含HTML格式展示数据的正文），并支持向多个邮箱发送
    :param data_dict: 包含活动信息的字典（活动名称和对应包含多个时间及状态信息的字典）
    :param subject: 邮件主题
    :param recipient_emails: 接收邮件的邮箱地址列表
    :return: 构建好的邮件对象（MIMEMultipart类型）
    """
    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = sender_email
    # 将收件人设置为传入的多个邮箱地址列表，用逗号分隔拼接成字符串形式
    msg['To'] = recipient_emails

    # 构建HTML表格头部，包含多个列标题
    html_table = "<table border='1'><tr><th>活动名称</th><th>开始时间</th><th>结束时间</th><th>参与开始时间</th><th>活动状态</th></tr>"
    for name, info_dict in data_dict.items():
        startTime = info_dict.get("startTime", "")
        endTime = info_dict.get("endTime", "")
        joinStartTime = info_dict.get("joinStartTime", "")
        statusName = info_dict.get("statusName", "")
        # 为每个活动构建一行表格数据
        html_table += f"<tr><td>{name}</td><td>{startTime}</td><td>{endTime}</td><td>{joinStartTime}</td><td>{statusName}</td></tr>"
    html_table += "</table>"
    html_body = f"<html><body>以下是相关活动信息数据：<br>{html_table}</body></html>"

    msg.attach(MIMEText(html_body, 'html', 'utf-8'))
    print("邮件主体构造完成!")
    return msg
